/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Ewerton
 */
@Entity
@Table(name = "compra")
@NamedQueries({
    @NamedQuery(name = "Compra.findAll", query = "SELECT c FROM Compra c"),
    @NamedQuery(name = "Compra.findByIdCompra", query = "SELECT c FROM Compra c WHERE c.idCompra = :idCompra"),
    @NamedQuery(name = "Compra.findByCodFornecedor", query = "SELECT c FROM Compra c WHERE c.codFornecedor = :codFornecedor"),
    @NamedQuery(name = "Compra.findByNumeroNf", query = "SELECT c FROM Compra c WHERE c.numeroNf = :numeroNf"),
    @NamedQuery(name = "Compra.findBySerieNf", query = "SELECT c FROM Compra c WHERE c.serieNf = :serieNf"),
    @NamedQuery(name = "Compra.findByDataEmissao", query = "SELECT c FROM Compra c WHERE c.dataEmissao = :dataEmissao"),
    @NamedQuery(name = "Compra.findByDataEntrada", query = "SELECT c FROM Compra c WHERE c.dataEntrada = :dataEntrada"),
    @NamedQuery(name = "Compra.findByBaseCalculoIcms", query = "SELECT c FROM Compra c WHERE c.baseCalculoIcms = :baseCalculoIcms"),
    @NamedQuery(name = "Compra.findByValorIcms", query = "SELECT c FROM Compra c WHERE c.valorIcms = :valorIcms"),
    @NamedQuery(name = "Compra.findByBaseCalculoIst", query = "SELECT c FROM Compra c WHERE c.baseCalculoIst = :baseCalculoIst"),
    @NamedQuery(name = "Compra.findByValorIst", query = "SELECT c FROM Compra c WHERE c.valorIst = :valorIst"),
    @NamedQuery(name = "Compra.findByValorFrete", query = "SELECT c FROM Compra c WHERE c.valorFrete = :valorFrete"),
    @NamedQuery(name = "Compra.findByValorSeguro", query = "SELECT c FROM Compra c WHERE c.valorSeguro = :valorSeguro"),
    @NamedQuery(name = "Compra.findByOutrasDespesas", query = "SELECT c FROM Compra c WHERE c.outrasDespesas = :outrasDespesas"),
    @NamedQuery(name = "Compra.findByValorIpi", query = "SELECT c FROM Compra c WHERE c.valorIpi = :valorIpi"),
    @NamedQuery(name = "Compra.findByTotalProdutos", query = "SELECT c FROM Compra c WHERE c.totalProdutos = :totalProdutos"),
    @NamedQuery(name = "Compra.findByTotalNota", query = "SELECT c FROM Compra c WHERE c.totalNota = :totalNota"),
    @NamedQuery(name = "Compra.findByCodListaProdutos", query = "SELECT c FROM Compra c WHERE c.codListaProdutos = :codListaProdutos")})
public class Compra implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_compra")
    private Integer idCompra;
    @Column(name = "cod_fornecedor")
    private Integer codFornecedor;
    @Column(name = "numero_nf")
    private Integer numeroNf;
    @Column(name = "serie_nf")
    private String serieNf;
    @Column(name = "data_emissao")
    @Temporal(TemporalType.DATE)
    private Date dataEmissao;
    @Column(name = "data_entrada")
    @Temporal(TemporalType.DATE)
    private Date dataEntrada;
    @Column(name = "base_calculo_icms")
    private BigDecimal baseCalculoIcms;
    @Column(name = "valor_icms")
    private BigDecimal valorIcms;
    @Column(name = "base_calculo_ist")
    private BigDecimal baseCalculoIst;
    @Column(name = "valor_ist")
    private BigDecimal valorIst;
    @Column(name = "valor_frete")
    private BigDecimal valorFrete;
    @Column(name = "valor_seguro")
    private BigDecimal valorSeguro;
    @Column(name = "outras_despesas")
    private BigDecimal outrasDespesas;
    @Column(name = "valor_ipi")
    private BigDecimal valorIpi;
    @Column(name = "total_produtos")
    private BigDecimal totalProdutos;
    @Column(name = "total_nota")
    private BigDecimal totalNota;
    @Column(name = "cod_lista_produtos")
    private Integer codListaProdutos;

    public Compra() {
    }

    public Compra(Integer idCompra) {
        this.idCompra = idCompra;
    }

    public Integer getIdCompra() {
        return idCompra;
    }

    public void setIdCompra(Integer idCompra) {
        this.idCompra = idCompra;
    }

    public Integer getCodFornecedor() {
        return codFornecedor;
    }

    public void setCodFornecedor(Integer codFornecedor) {
        this.codFornecedor = codFornecedor;
    }

    public Integer getNumeroNf() {
        return numeroNf;
    }

    public void setNumeroNf(Integer numeroNf) {
        this.numeroNf = numeroNf;
    }

    public String getSerieNf() {
        return serieNf;
    }

    public void setSerieNf(String serieNf) {
        this.serieNf = serieNf;
    }

    public Date getDataEmissao() {
        return dataEmissao;
    }

    public void setDataEmissao(Date dataEmissao) {
        this.dataEmissao = dataEmissao;
    }

    public Date getDataEntrada() {
        return dataEntrada;
    }

    public void setDataEntrada(Date dataEntrada) {
        this.dataEntrada = dataEntrada;
    }

    public BigDecimal getBaseCalculoIcms() {
        return baseCalculoIcms;
    }

    public void setBaseCalculoIcms(BigDecimal baseCalculoIcms) {
        this.baseCalculoIcms = baseCalculoIcms;
    }

    public BigDecimal getValorIcms() {
        return valorIcms;
    }

    public void setValorIcms(BigDecimal valorIcms) {
        this.valorIcms = valorIcms;
    }

    public BigDecimal getBaseCalculoIst() {
        return baseCalculoIst;
    }

    public void setBaseCalculoIst(BigDecimal baseCalculoIst) {
        this.baseCalculoIst = baseCalculoIst;
    }

    public BigDecimal getValorIst() {
        return valorIst;
    }

    public void setValorIst(BigDecimal valorIst) {
        this.valorIst = valorIst;
    }

    public BigDecimal getValorFrete() {
        return valorFrete;
    }

    public void setValorFrete(BigDecimal valorFrete) {
        this.valorFrete = valorFrete;
    }

    public BigDecimal getValorSeguro() {
        return valorSeguro;
    }

    public void setValorSeguro(BigDecimal valorSeguro) {
        this.valorSeguro = valorSeguro;
    }

    public BigDecimal getOutrasDespesas() {
        return outrasDespesas;
    }

    public void setOutrasDespesas(BigDecimal outrasDespesas) {
        this.outrasDespesas = outrasDespesas;
    }

    public BigDecimal getValorIpi() {
        return valorIpi;
    }

    public void setValorIpi(BigDecimal valorIpi) {
        this.valorIpi = valorIpi;
    }

    public BigDecimal getTotalProdutos() {
        return totalProdutos;
    }

    public void setTotalProdutos(BigDecimal totalProdutos) {
        this.totalProdutos = totalProdutos;
    }

    public BigDecimal getTotalNota() {
        return totalNota;
    }

    public void setTotalNota(BigDecimal totalNota) {
        this.totalNota = totalNota;
    }

    public Integer getCodListaProdutos() {
        return codListaProdutos;
    }

    public void setCodListaProdutos(Integer codListaProdutos) {
        this.codListaProdutos = codListaProdutos;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCompra != null ? idCompra.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Compra)) {
            return false;
        }
        Compra other = (Compra) object;
        if ((this.idCompra == null && other.idCompra != null) || (this.idCompra != null && !this.idCompra.equals(other.idCompra))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "model.Compra[idCompra=" + idCompra + "]";
    }

}
